package com.payment.system.mapper;

import com.payment.system.domain.MerchantParent;
import com.payment.system.vo.ParentMerchantVo;

import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 商户上级关系 数据层
 * 
 * @author payment
 * @date 2019-06-20
 */
public interface MerchantParentMapper 
{
	/**
     * 查询商户上级关系信息
     * 
     * @param merchantPhone 商户上级关系ID
     * @return 商户上级关系信息
     */
	public MerchantParent selectMerchantParentById(String merchantPhone);
	
	/**
     * 查询商户上级关系列表
     * 
     * @param merchantParent 商户上级关系信息
     * @return 商户上级关系集合
     */
	public List<MerchantParent> selectMerchantParentList(MerchantParent merchantParent);
	
	/**
     * 新增商户上级关系
     * 
     * @param merchantParent 商户上级关系信息
     * @return 结果
     */
	public int insertMerchantParent(MerchantParent merchantParent);
	
	/**
     * 修改商户上级关系
     * 
     * @param merchantParent 商户上级关系信息
     * @return 结果
     */
	public int updateMerchantParent(MerchantParent merchantParent);
	
	/**
     * 删除商户上级关系
     * 
     * @param merchantPhone 商户上级关系ID
     * @return 结果
     */
	public int deleteMerchantParentById(String merchantPhone);
	
	/**
     * 批量删除商户上级关系
     * 
     * @param merchantPhones 需要删除的数据ID
     * @return 结果
     */
	public int deleteMerchantParentByIds(String[] merchantPhones);

	/**
	 * 根据推荐人手机号查询直推总数
	 * @param parentPhone 推荐人手机号
	 * @return
	 */
	Integer selectMerchantBymerchantId(@Param("parentPhone") String parentPhone);

	int deleteMerchantParentByParentPhon(@Param("parentPhone") String parentPhone);

	public List<MerchantParent> selectChongFu();

	public void deleteLimit(@Param("merchantPhone")String merchantPhone, @Param("parentPhone")String parentPhone);

	public Integer selectCongZhiNumByLevelAndParentPhone(@Param("phone")String phone,@Param("level")int level);

	public Integer selectCongZhiByParentPhone(@Param("phone")String phone, @Param("time")String time,@Param("time2") String time2);
	/**
	 * 修改关系的时候根据手机号查询所有需要重新调整手机号
	 * @param phone
	 * @return
	 */
	public List<String> selectPhoneListByParentPhone(@Param("phone")String phone);
	/**
	 * 修改关系的先要线束的数据
	 * @param phone
	 * @return
	 */
	public int deleteMerchantParentByParentPhonOrPhone(@Param("phone")String phone);
	/**
	 * 查询团队人数根据手机号和等级
	 * @param phone
	 * @param level
	 * @return
	 */
	public Integer selectTeamNumByPhoneAndLevel(@Param("phone")String phone,@Param("level") Integer level);
	/**
	 * 根据手机号查看所有上级
	 * @param phone
	 * @return
	 */
	public List<ParentMerchantVo> selectParentMerchantListByPhone(@Param("phone")String phone);
}